package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.Comment;
import cn.wolfcode.trip.base.domain.OfComment;
import cn.wolfcode.trip.base.domain.Strategy;
import cn.wolfcode.trip.base.query.QueryObject;
import cn.wolfcode.trip.base.query.StrategyQueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface IStrategyService {

    PageInfo getPageInfo(StrategyQueryObject qo);

    void saveOrUpdate(Strategy strategy);

    List<Strategy> list();

    PageInfo listByState(StrategyQueryObject qo);

    Strategy get(Long strategyId);

    /**
     * admin 删除攻略游记
     * @param id
     */
    void deleteStrategyTravel(Long id);

    /**
     * admin 添加攻略游记
     * @param strategyId
     * @param travelId
     */
    void saveStrategyTravel(Long strategyId, Long travelId);

    PageInfo getTagsByStrategyId(Long strategyId, QueryObject qo);

    void saveStrategyComments(Comment comment, String myTags, Long[] ids);

    PageInfo getStrategyCommentsByStrategyId(Long strategyId, QueryObject qo);

    PageInfo getStrategyCommentByStrategyCommentId(Long strategyCommentId, QueryObject qo);

    void saveStrategyOfComments(OfComment ofComment);

    PageInfo getStrategyOfCommentByStrategyCommentId(Long strategyCommentId, QueryObject qo);

    Integer showStrategyCommentLikersByStrategyCommentId(Long strategyCommentId, Long likerId);

    Integer showStrategyOfCommentLikersByStrategyCommentId(Long strategyOfCommentId, Long likerId);

    void saveStrategyOfOfComments(OfComment ofComment);
}
